/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"205FE54B-B9A9-4B8E-8041-39E9E4759B49",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:24,uuid:"F714D4C4-246D-43D5-BAE8-E6933D2D8270"}
 */
function iniciar() 
{
	databaseManager.setAutoSave(false);
	controller.newRecord();
	
	fecha=application.getServerTimeStamp();
	letra=globals.zconf_letra_remito; 
	flete=0;
	es_preview = 0;
	deposito=globals.zparam_deposito_default;  // deposito San Martin = 1
	renglones_en_blanco(); 
	
	globals.gproveedor_o_fletero=1; 
	application.setNumpadEnterAsFocusNextEnabled(true); 

	elements.deposito.requestFocus();  
	return true;	
	
}

/**
 * @properties={typeid:24,uuid:"AD4F180F-9FF5-4F78-8852-956B8B560AA3"}
 * @AllowToRunInFind
 */
function confirmar() 
{
	

cliente_id=null  // se modifico tabla para permitir null  23/02/2012
//  VALIDACION campos	

	
if (deposito==null || fecha==null ||  deposito_destino==null)
	{
	var aux_mensaje=' ';

	if (fecha==null)
		aux_mensaje='fecha';
	if (deposito==null)
		aux_mensaje='deposito';
	if (deposito_destino==null)
		aux_mensaje='deposito';
		
	globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar ' + aux_mensaje + ' para poder confirmar','OK');
	return false;
	} 


//  VALIDACION  RENGLONES =ver que no falten datos y ELIMINAR RENGLONES en BLANCO  
	if(rem_cabecera_to_rem_detalle.getSize()==0)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar renglones ','OK');
		return false; 
	}
var i=1;
while (i<=rem_cabecera_to_rem_detalle.getSize())
{
	rem_cabecera_to_rem_detalle.setSelectedIndex(i);
	if ((rem_cabecera_to_rem_detalle.producto_id ==null) && 
		(rem_cabecera_to_rem_detalle.cantidad==null || rem_cabecera_to_rem_detalle.cantidad==0)  &&
		(rem_cabecera_to_rem_detalle.precio_unitario==null || rem_cabecera_to_rem_detalle.precio_unitario==0))
		{
			rem_cabecera_to_rem_detalle.deleteRecord(i);
		}
		else
			i++
}  
	for ( var i = 1 ; i <= rem_cabecera_to_rem_detalle.getSize(); i++ )
	{
		rem_cabecera_to_rem_detalle.setSelectedIndex(i);
		
		if (rem_cabecera_to_rem_detalle.producto_id==null)
		{
			globals.DIALOGS.showWarningDialog('Aviso','Debe informar Cod. producto del renglon ' + i,'OK');
			return false;
		}
		if (rem_cabecera_to_rem_detalle.cantidad==null || rem_cabecera_to_rem_detalle.cantidad==0)
		{
			globals.DIALOGS.showWarningDialog('Aviso','Debe informar Cantidad del renglon ' + i,'OK');
			return false;
		}   
	}	

// OTROS DATOS CABECERA
	tipo=globals.zconf_tipo_remito_interno;
	rem_estado=globals.zconf_rem_ingresado;
		
// DESCUENTA de EXISTENCIAS de ese DEPOSITO y STOCK  la cantidad total  y de los pendientes  // TODO  recontraprobar!!! 
	for (var i = 1 ; i <= rem_cabecera_to_rem_detalle.getSize(); i++)
	{  // RESTA cantidad del renglon del remito de EXISTENCIAS del DEPOSITO ORIGEN  
		rem_cabecera_to_rem_detalle.setSelectedIndex(i);
		
		globals.gdeposito=deposito;  //  para la relacion  productos_to_existencias_x_dep
		rem_cabecera_to_rem_detalle.rem_detalle_to_productos.productos_to_existencias_x_dep.exi_cantidad -= rem_cabecera_to_rem_detalle.cantidad;
			
		// SUMA cantidad pend. entrega de EXISTENCIAS del DEPOSITO DESTINO
		globals.gdeposito=deposito_destino;    //  para la relacion  productos_to_existencias_x_dep
		rem_cabecera_to_rem_detalle.rem_detalle_to_productos.productos_to_existencias_x_dep.exi_cantidad += rem_cabecera_to_rem_detalle.cantidad;
	} 

	
// NUMERACION
	var fs_nro_rem = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'numeracion_cl')
	fs_nro_rem.loadAllRecords()
	fs_nro_rem.find()
	fs_nro_rem.sucursal=sucursal
	fs_nro_rem.letra=letra
	fs_nro_rem.cod_comprobante=globals.zconf_numeracion_remito_int; // 15
	var found=fs_nro_rem.search()
	if (found != 1)
    {
	   globals.DIALOGS.showWarningDialog('Aviso','Sucursal o Letra o Tipo de comprobante incorrectos','OK');
	   return false;  
    }
	fs_nro_rem.setSelectedIndex(1)
	fs_nro_rem.ultimo_numero= fs_nro_rem.ultimo_numero + 1
	nro_remito=fs_nro_rem.ultimo_numero;
	
// HISTORICO STOCK  = 1 mov. x la salida del origen, 1 mov. x la entraga al destino
	historico_stock();  //  01/02/2012

var estado_save=databaseManager.saveData();
if (estado_save==true)
{ 
	// GENERAR PDF SIEMPRE  // 16/08/2011
	var carpeta=globals.zconf_path_pdf  // TOMA de una GLOBALS el NOMBRE DE LA CARPETA P/dejar el remito.
	plugins.file.createFolder(carpeta); // CREA LA CARPETA PARA DEJAR EL REMITO 	
	//ARMO NOMBRE DEL PDF DE todos los CLIENTES  
	var nombre_remito=carpeta+'/Remito-'+letra+'-'+utils.numberFormat(sucursal,'0000')+'-'+utils.numberFormat(nro_remito,'00000000')+'.pdf';				
	forms.remitos_int_imp.controller.print(true,false,plugins.pdf_output.getPDFPrinter(nombre_remito));
																	
	var resp=globals.DIALOGS.showQuestionDialog('Generador de Remitos', 'Remito Minorista ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_remito,'00000000') +  '\nGenerado correctamente', "Imprimir", "PDF" );
	if (resp == 'Imprimir')		
	{
		es_preview = 1;
	    forms.remitos_int_imp.controller.showPrintPreview(true); 
	}
	if (resp == 'PDF')		
	{	
	// MUESTRO el pfd directamente		
		application.showURL('file:///' + nombre_remito);  
	}
	
	// GUARDAR PDF EN PED_CABECERA // 16/08/2011  
	estado_save=databaseManager.saveData();
	if (estado_save!=true)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Error al guardar PDF en la tabla','OK');
		return false;  
	}   //  16/08/2011  hasta
}
else
{
	globals.DIALOGS.showInfoDialog('Generador de Remitos', 'Remito no fue generado - Revise los datos ingresados',  "OK")
}
return true
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"176D12B8-C297-4312-9568-10A626C7F2F4"}
 */
function salir(event) 
{
	if (es_preview==0)
	{
		if (cliente_id!=null)// 16/06/2011 si no ingreso nada no confirmar
		{
	    	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')	
			if (resp == 'Si')
			{
				databaseManager.revertEditedRecords();
				return true;
			}
			else
				return false;
		}
		else // 16/06/2011
		{	databaseManager.revertEditedRecords();
			return true;
		}
	}
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"AED2EF73-F6F2-4EA3-9270-CF837A74C8AE"}
 */
function agregar_renglon(event)
{
	if (deposito!=null && deposito_destino != null)
		rem_cabecera_to_rem_detalle.newRecord(false);
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe elegir depositos primero','OK');
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"F62A64FC-4BBB-4E92-9CD4-323196B9A7A7"}
 */
function eliminar_renglon(event) 
{
	if (rem_cabecera_to_rem_detalle.producto_id != null) // solo si ingreso producto
	{
	// RECALCULO (resta) de renglon de PEDIDO  para ver como se va cumpliendo en este remito  // 21/06/2011
		if (forms.remitos.ped_cabecera_id != null)  //  tiene pedido
		{
			if (rem_cabecera_to_rem_detalle.ped_detalle_id != null) //   ese renglon esta referenciado a uno de pedido
			{
				rem_cabecera_to_rem_detalle.rem_detalle_to_ped_detalle.cantidad_pendiente_entrega -= rem_cabecera_to_rem_detalle.cantidad;
			}
		}
	}   
	rem_cabecera_to_rem_detalle.deleteRecord()
}

/**
 * @properties={typeid:24,uuid:"15A4E2E2-24BB-42DC-B6F9-87DFB7BD9B47"}
 */
function cancelar() 
{ 	
	databaseManager.revertEditedRecords();
	iniciar();
}

/**
 * @properties={typeid:24,uuid:"EEF62E0B-B4DD-47AE-B333-7C75813E0BD0"}
 */
function historico_stock() 
{
	
var fs_hist = databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'hist_stock');
fs_hist.newRecord();
for ( var i = 1 ; i <= rem_cabecera_to_rem_detalle.getSize(); i++ )
	{
	//  egreso del origen
	rem_cabecera_to_rem_detalle.setSelectedIndex(i); 
	fs_hist.newRecord();
	fs_hist.cantidad=rem_cabecera_to_rem_detalle.cantidad;
	fs_hist.cliente_id=cliente_id;
	fs_hist.producto_id=rem_cabecera_to_rem_detalle.producto_id;
	fs_hist.fecha=fecha;
	fs_hist.tipo=globals.zconf_hist_egre_interno;  //4=egreso interno
	fs_hist.cantidad_signo=rem_cabecera_to_rem_detalle.cantidad * (-1); // grabar con signo=NO hacer calculation
	fs_hist.deposito_id=deposito;
	fs_hist.moneda_id=globals.zparam_moneda_default;
	fs_hist.cantidad=rem_cabecera_to_rem_detalle.cantidad;
	fs_hist.comprob_tipo=globals.zconf_numeracion_remito_int; 
	fs_hist.comprob_sucursal=sucursal;
	fs_hist.comprob_nro=nro_remito;
	fs_hist.comprob_letra=letra;
	//  ingreso  al destino
	rem_cabecera_to_rem_detalle.setSelectedIndex(i); 
	fs_hist.newRecord();
	fs_hist.cantidad=rem_cabecera_to_rem_detalle.cantidad;
	fs_hist.cliente_id=cliente_id; 
	fs_hist.producto_id=rem_cabecera_to_rem_detalle.producto_id;
	fs_hist.fecha=fecha;
	fs_hist.tipo=globals.zconf_hist_ingre_interno;  //3 ingreso interno
	fs_hist.cantidad_signo=rem_cabecera_to_rem_detalle.cantidad; 
	fs_hist.deposito_id=deposito_destino;
	fs_hist.moneda_id=globals.zparam_moneda_default;
	fs_hist.cantidad=rem_cabecera_to_rem_detalle.cantidad;
	fs_hist.comprob_tipo=globals.zconf_numeracion_remito_int; 
	fs_hist.comprob_sucursal=sucursal;
	fs_hist.comprob_nro=nro_remito;
	fs_hist.comprob_letra=letra;
	}
}

/**
 * @properties={typeid:24,uuid:"FA35CC9B-5DA5-4C6C-AAEA-374F670A9DA1"}
 */
function renglones_en_blanco() 
{
// pone 10 renglones en blanco 
	for (var i=1;i <= 10;i++)
		rem_cabecera_to_rem_detalle.newRecord(false);
	rem_cabecera_to_rem_detalle.setSelectedIndex(1);
	
}

/**
 * @properties={typeid:24,uuid:"34FCED42-529F-4132-ABC4-83B71B6AD687"}
 */
function onDataChange_deposito_destino() 
{
	if(deposito==deposito_destino)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Depósito origen no debe ser igual que el depósito destino ','OK');
		deposito_destino=null;
		return false;
	}
	return true
}
